#pragma once
#include <memory>
#include <transfer/ITransfer.h>
namespace ecarx::transfer::someip {
class NetSomeIP:public ITransfer{
    class NetSomeIPImpl;
    NetSomeIPImpl* mSomeIpPtr;
    public:
        NetSomeIP();
        ~NetSomeIP();
        //打开链接
        bool open() override;
        //关闭链接
        bool close() override;
        //将数据写到网络上
        bool write(const Signal &) override;
        const std::optional<Signal> read(const int32_t signalId) const override;
        NetState getState() override;
        void onSignalChanged(SignalChangeCallback &&callback) override;
        void registerStateHandler(NetStateCallback && _callback) override;
};
}
